package com.tanhua.server.service;

import com.alibaba.fastjson.JSON;
import com.tanhua.commons.utils.Constants;
import com.tanhua.model.mongo.Comment;
import com.tanhua.model.vo.ErrorResult;
import com.tanhua.server.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.Map;

@Service
public class UserFreezeService {
    @Autowired
    private RedisTemplate<String,String> redisTemplate;
    /*判断用户是否被冻结,如果被冻结,抛出异常
    * 参数1:冻结范围
    * 参数2:userID
    * */
     public void checkUserStatus(String state,Long userId){
         //1、拼接key，从redis中查询数据
         String key= Constants.USER_FREEZE+userId;
         String value =redisTemplate.opsForValue().get(key);
         //2、如果数据存在，且冻结范围一致，抛出异常
         if (!StringUtils.isEmpty(value)){
             //将REDIS中存储的JSON串转换为MAP：freezingTime，freezingRange，reasonsForFreezing，frozenRemarks
             Map map = JSON.parseObject(value, Map.class);
             String freezingRange = (String) map.get("freezingRange");
             if(state.equals(freezingRange)) {
                 throw new BusinessException(ErrorResult.builder().errMessage("用户被冻结").build());
             }
         }

     }

}
